package top.andnux.weather.activity;

import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.LayoutInflater;

import androidx.annotation.Nullable;

import top.andnux.weather.R;
import top.andnux.weather.databinding.ActivityDetailsBinding;
import top.andnux.weather.model.MainModel;

public class DetailsActivity extends BaseActivity<ActivityDetailsBinding> {

    private MediaPlayer mediaPlayer;

    /**
     * 启动详情页面
     *
     * @param context
     * @param future
     */
    public static void start(Context context, MainModel.ResultDTO.FutureDTO future, String city) {
        Intent intent = new Intent(context, DetailsActivity.class);
        intent.putExtra("city", city);
        intent.putExtra("data", future);
        context.startActivity(intent);
    }

    @Override
    protected ActivityDetailsBinding createViewBinding(LayoutInflater inflater) {
        return ActivityDetailsBinding.inflate(inflater);
    }

    @Override
    protected void onCreated(@Nullable Bundle savedInstanceState) {
        binding.back.setOnClickListener(v -> finish());
        MainModel.ResultDTO.FutureDTO data = (MainModel.ResultDTO.FutureDTO) getIntent().getSerializableExtra("data");

        if (data != null) {
            String city = getIntent().getStringExtra("city");
            binding.city.setText(city);
            binding.temperature.setText(data.getTemperature());
            String weather = data.getWeather();
            if (weather.contains("晴")) {
                binding.content.setImageResource(R.drawable.a1);
                binding.info.setText("请尽量避免在日照最强烈的10点至16点外出，如必须外出，请做好防晒措施，如涂抹防晒霜、戴宽边帽和太阳镜。\n" + "及时补充水分，以防中暑，可以饮用含电解质的饮料以帮助身体保持水分平衡。\n" + "尽量穿着宽松、透气、浅色的衣物，以减少热量的吸收。\n" + "注意家中的老人和小孩，他们更容易受到高温的影响。");
            } else if (weather.contains("雪")) {
                binding.content.setImageResource(R.drawable.a2);
                binding.info.setText("穿着保暖，特别是保护好头部、颈部、手部和脚部，这些部位最容易散热。\n" + "使用电热毯、暖宝宝等取暖设备时，请注意安全，避免火灾和触电风险。\n" + "多喝热水，吃温热的食物，有助于身体保持温暖。\n" + "注意防滑，雨雪天气地面湿滑，行走时要小心。");
            } else if (weather.contains("雨")) {
                binding.content.setImageResource(R.drawable.a3);
                mediaPlayer = MediaPlayer.create(this, R.raw.yu);
                mediaPlayer.start();
                binding.info.setText("出行时请携带雨具，如雨伞、雨衣等，以防被雨淋湿。\n" + "驾驶时请注意安全，降低车速，增大车距，以防路面湿滑导致事故。\n" + "雨雪天气可能导致能见度降低，行走和骑行时要特别注意交通安全。");
            } else if (weather.contains("风")) {
                binding.content.setImageResource(R.drawable.a4);
                mediaPlayer = MediaPlayer.create(this, R.raw.feng);
                mediaPlayer.start();
                binding.info.setText("尽量避免外出，特别是不要在广告牌、大树等易被风吹倒的物体附近停留。\n" + "紧闭门窗，以防大风侵入室内，造成损失。\n" + "如需外出，请佩戴帽子、围巾等防风物品，保护头部和颈部。");
            } else if (weather.contains("雾")) {
                binding.content.setImageResource(R.drawable.a5);
                binding.info.setText("尽量减少户外活动，特别是儿童和老年人，以及有呼吸系统疾病的人群。\n" + "如必须外出，请佩戴防雾霾口罩，以减少有害物质的吸入。\n" + "在室内使用空气净化器，有助于减少室内的空气污染。");
            } else {
                binding.content.setImageResource(R.drawable.a6);
                binding.info.setText("多云天气可能会使天空显得阴沉，容易影响人的心情。建议通过运动、听音乐等方式调节情绪，保持心情愉悦。\n" + "虽然多云天气可能不适合长时间户外活动，但适当的散步或锻炼仍然有益健康。在天气转晴或气温适宜的时段，可以适当增加户外活动时间。");
            }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer != null) {
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }
}